﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Dados.Interfaces;
using Dados.ValueObjects;
using Dados.INFTURDataSetTableAdapters;

namespace Dados.ClassesSQLServer
{
    public class LocadoraSQLServer : ILocadora
    {
        T_LOCADORATableAdapter locadoraTA = new T_LOCADORATableAdapter();

        #region IDestino Members

        public int Inserir(LocadoraVO lVO)
        {
            try
            {
                return locadoraTA.Insert(lVO.Nome, lVO.Site, lVO.Telefone, lVO.Email, lVO.Endereco);  
            }
            catch (Exception e)
            {

                throw new Exception(e.Message);
            } 
        }

        public int Atualizar(LocadoraVO lVO)
        {
            try
            {
                return locadoraTA.Update(lVO.Nome, lVO.Site, lVO.Telefone, lVO.Email, lVO.Endereco, lVO.Id);
            }
            catch (Exception e)
            {

                throw new Exception(e.Message);
            }
        }

        public int Remover(int ID)
        {
            try
            {
                return locadoraTA.Delete(ID);
            }
            catch (Exception e)
            {

                throw new Exception(e.Message);
            }
        }

        public LocadoraVO Consultar(int ID)
        {
          
            try
            {

                LocadoraVO lVO = null;
                INFTURDataSet.T_LOCADORADataTable dtLocadora = locadoraTA.GetLocadoraPorId(ID);

                lVO = new LocadoraVO();
                lVO.Id = ID;
                lVO.Nome = dtLocadora[0].tx_nome;
                lVO.Site = dtLocadora[0].tx_site;
                lVO.Telefone = dtLocadora[0].tx_telefone;
                lVO.Email = dtLocadora[0].tx_email;
                lVO.Endereco = dtLocadora[0].tx_endereco;
                
                return lVO;
            }
            catch (Exception e)
            {

                throw new Exception(e.Message);
            }
        }

        public List<LocadoraVO> ConsultaTodos()
        {
            try
            {
                List<LocadoraVO> listaLocadoraVO = new List<LocadoraVO>();
                INFTURDataSet.T_LOCADORADataTable dtLocadora = locadoraTA.GetData();

                foreach (INFTURDataSet.T_LOCADORARow lRow in dtLocadora)
                {
                    LocadoraVO lVO = new LocadoraVO();
                    lVO.Id = lRow.nr_id;
                    lVO.Nome = lRow.tx_nome;
                    lVO.Site = lRow.tx_site;
                    lVO.Telefone = lRow.tx_telefone;
                    lVO.Email = lRow.tx_email;
                    lVO.Endereco = lRow.tx_endereco;

                    listaLocadoraVO.Add(lVO);
                }

                return listaLocadoraVO;
            }
            catch (Exception e)
            {
                throw new Exception(e.Message);
            }
        }

        #endregion
    }
}
